import numpy as np
import matplotlib.pyplot as plt
import plotly.graph_objects as go
import ipywidgets as widgets
from ipywidgets import interact, interactive, fixed, interact_manual
import datetime
from dateutil.relativedelta import relativedelta
import plotly.express as px
max_selling_price = 1_200_000
selling_price = 750_000
mortgage = 390_000
amortize = 2_000
start_date = datetime.datetime(2023, 1, 30)
price_fix = start_date + relativedelta(years=5)
y_var = []
x_var = []
y_fixed = []
x_fixed = []
y_var_max = []
x_var_max = []
payback = selling_price-mortgage
payback_max = max_selling_price-mortgage
date = start_date
while payback >= 0:
if date > price_fix:
y_fixed.append(payback)
x_fixed.append(date)
else:
y_var.append(payback)
x_var.append(date)
x_var_max.append(date)
y_var_max.append(payback_max)
payback -= amortize
payback_max -= amortize
date += relativedelta(months=1)
fig = go.Figure()
fig.add_trace(go.Scatter(x=x_var,y=y_var,name="var",line_color='rgb(220, 80, 95)',mode='lines+markers'))
fig.add_trace(go.Scatter(x=x_var_max,y=y_var_max,name="var max",line_color='rgba(255, 255, 255,0.5)',mode='lines+markers'))
fig.add_trace(go.Scatter(x=x_fixed,y=y_fixed,name="fixed",line_color='rgb(115, 191, 148)',mode='lines+markers'))
fig.update_layout(legend=dict(y=0.5, traceorder='reversed', font_size=16) ,xaxis_title='Year',
yaxis_title='CHF',title="Without inheritance")
fig.show()
def beneficiaryOfTheHeirs(heirs):
fig = go.Figure()
for key in heirs.keys():
fig.add_trace(go.Scatter(x=np.array(x_var),y=np.array(y_var)*heirs[key],name=f"var {key}",line_color='rgba(220, 80, 95,0.2)',mode='lines+markers'))
fig.add_trace(go.Scatter(x=np.array(x_var_max),y=np.array(y_var_max)*heirs[key],name=f"var max {key}",line_color='rgba(255, 255, 255,0.2)',mode='lines+markers'))
fig.add_trace(go.Scatter(x=np.array(x_fixed),y=np.array(y_fixed)*heirs[key],name=f"fixed {key}",line_color='rgba(115, 191, 148,0.2)',mode='lines+markers'))
fig.update_layout(legend=dict(y=0.5, traceorder='reversed', font_size=16) ,xaxis_title='Year',
yaxis_title='CHF',title="Beneficiary's of the heirs")
fig.show()
compulsory_heirs = {"Claudia":0.25,"Gabriella":0.25,"Tobias":0.5}
fig = px.pie(values=[compulsory_heirs[key] for key in compulsory_heirs.keys()], names=[key for key in compulsory_heirs.keys()])
fig.show()
beneficiaryOfTheHeirs(compulsory_heirs)
current_heirs = {"Claudia": 0.5, "Gabriella": 0.25, "Tobias": 0.05,"Lukas":0.05,"Alice":0.05,"Noel":0.05,"Walter":0.05}
fig = px.pie(values=[current_heirs[key] for key in current_heirs.keys()],
names=[key for key in current_heirs.keys()])
fig.show()
beneficiaryOfTheHeirs(current_heirs)
dictOfWills = {"Current will":current_heirs,"Updated will":compulsory_heirs}
fig = go.Figure()
for key in dictOfWills.keys():
toPayFactor = sum([dictOfWills[key][subKey] for subKey in dictOfWills[key].keys() if subKey != "Tobias"])
fig.add_trace(go.Scatter(x=np.array(x_var),y=np.array(y_var)*toPayFactor,name=f"{key}",line_color='rgba(220, 80, 95,0.2)',mode='lines+markers'))
fig.add_trace(go.Scatter(x=np.array(x_var_max),y=np.array(y_var_max)*toPayFactor,name=f"{key}",line_color='rgba(255, 255, 255,0.2)',mode='lines+markers'))
fig.add_trace(go.Scatter(x=np.array(x_fixed),y=np.array(y_fixed)*toPayFactor,name=f"{key}",line_color='rgba(115, 191, 148,0.2)',mode='lines+markers'))
fig.update_layout(legend=dict(y=0.5, traceorder='reversed', font_size=16) ,xaxis_title='Year',
yaxis_title='CHF',title="Cost in case of inheritance Tobias")
fig.show()